home *** CD-ROM | disk | FTP | other *** search
/ Corel: All-Movie Guide 2 / Corel All-Movie Guide 2.iso / pc / install / movie.ms_ / movie.ms
Text File  |  1996-07-26  |  25KB  |  848 lines

  1. ''*************************************************************************
  2. ''*                 Corel All-Movie Guide 2 Setup Script.
  3. ''*************************************************************************
  4. '' rev. June 20, 1996 Stephg
  5.  
  6. ''---------------------------------------------------------------------------------------
  7. '' Includes
  8. ''---------------------------------------------------------------------------------------
  9.  
  10. '$INCLUDE 'setupapi.inc'
  11. '$INCLUDE 'msdetect.inc'
  12. '$INCLUDE 'msshared.inc'
  13.  
  14. ''---------------------------------------------------------------------------------------
  15. '' Defines
  16. ''---------------------------------------------------------------------------------------
  17.  
  18.   CONST sREGKEY   = "All-Movie Guide 2"
  19.   CONST sTITLE        = "All-Movie Guide 2"
  20.   CONST sDESTDIR      = "C:\CDHOME\ALLMOVIE" ''Default destination directory
  21.   CONST sINFFILE      = "MOVIE.INF"          ''The .INF file
  22.   CONST sINIFILE      = "MOVIE.INI"          ''The .INI file
  23.   CONST sLOGFILE      = "SETUP.LOG"          ''Setup log
  24.  
  25.   CONST sMGGROUP      = "Corel CD Home"      ''The program manager group
  26.  
  27.   CONST sCUIDLL       = "mscuistf.dll"       ''Custom user interface dll
  28.                                  
  29.   CONST cLOGO         = 1                    ''Bitmap ID
  30.  
  31.   CONST dSEARCHING    = 100                  ''Dialog ID's, as in "dialogs.h"
  32.   CONST dWELCOME      = 101
  33.   CONST dEXPRESS      = 102
  34.   CONST dDESTDIR      = 103
  35.   CONST dBADDESTDIR   = 104
  36.   CONST dTOOBIG       = 105
  37.   CONST dPLATFORM     = 106
  38.   CONST dMETHOD       = 107
  39.   CONST dREGISTER     = 108
  40.   CONST dGROUP        = 109
  41.  
  42.   CONST dASKREADME    = 110
  43.   CONST dREADME       = 111
  44.  
  45.   CONST dASKQUIT      = 190
  46.   CONST dEXITRESTART  = 196
  47.   CONST dEXITSUCCESS  = 197
  48.   CONST dEXITQUIT     = 198
  49.   CONST dEXITFAILURE  = 199
  50.                                                              
  51.   CONST sMESSAGE      = "Setup Message"
  52.   CONST sCORRUPTED    = "Setup sources were corrupted.\nCall Corel technical support."
  53.   CONST sCANTRESTART  = "Setup program cannot restart Windows. Please restart Windows manually."
  54.   CONST sWINVER       = "Corel All-Movie Guide 2 requires Windows version 3.1 or higher"
  55.   CONST s386          = "Corel All-Movie Guide 2 requires 80386 or better processor"
  56.   CONST cMBSTOP       = MB_OK+MB_TASKMODAL+MB_ICONHAND
  57.  
  58.   CONST sCOSTS        = "Costs"
  59.   CONST sEXTRACOSTS   = "ExtraCosts"
  60.     
  61. ''**** QTW ****  
  62.  
  63.   ''CONST sQTWVERSION   = "2.0.1.41"                          ''redistributed QTW version
  64.  
  65. ''---------------------------------------------------------------------------------------
  66. '' Variables
  67. ''---------------------------------------------------------------------------------------
  68.   
  69.   GLOBAL PLATFORM$    ''"Win16" | "Win32" - possibility, still default to 16
  70.   GLOBAL DESTDIR$     ''Destination directory
  71.   GLOBAL METHOD$      ''"MIN" | "STND" | "MAX"
  72.   GLOBAL EXPRESS%     ''TRUE if user has chosen the express setup, FALSE if custom
  73.   GLOBAL SrcDir$      ''source directory (used through Install)
  74.   GLOBAL SPACEREQ&    ''required additional space on hard disk
  75.   GLOBAL MGGROUP$     ''progman group
  76.  
  77.   ''GLOBAL InstallQTW%  ''0-don't, 1-do, 2-do!
  78.  
  79. ''---------------------------------------------------------------------------------------
  80. '' Declares
  81. ''---------------------------------------------------------------------------------------
  82.  
  83.   DECLARE SUB Install                       ''Installation process
  84.   DECLARE FUNCTION CheckDestDir AS INTEGER  ''Check validity of DESTDIR$
  85.   DECLARE FUNCTION CheckSpace   AS INTEGER  ''and available space
  86.                                             
  87.  
  88.   DECLARE FUNCTION VerFind LIB "mscuistf.dll" (szFileName$) AS INTEGER
  89.   ''DECLARE FUNCTION IsWin32 LIB "mscuistf.dll" AS INTEGER
  90.  
  91.   DECLARE FUNCTION PlatformString() AS STRING   ''Full name of PLATFORM$
  92.   DECLARE FUNCTION MethodString() AS STRING     ''Full name of METHOD$
  93.     
  94.   DECLARE FUNCTION MakePath(szDir$, szFile$) AS STRING
  95.   DECLARE FUNCTION DriveInt(Drive$) AS INTEGER                ''letter->integer
  96.   DECLARE FUNCTION WinVer AS INTEGER
  97.  
  98.   DECLARE SUB UpdateCopyList
  99.   DECLARE FUNCTION VerSearch(szFile$,szVersion$) AS STRING
  100.   DECLARE SUB VerKeyInstall(szSection$,szKey$)
  101.  
  102.   DECLARE SUB KeyInstall(szSection$,szKey$)
  103.  
  104.   DECLARE FUNCTION WritePrivateProfileString LIB "krnl386.exe" (szSect$,szEntry$,szString$,szINI$) AS INTEGER
  105.  
  106. ''---------------------------------------------------------------------------------------
  107. '' Make Setup full screen:
  108. ''---------------------------------------------------------------------------------------
  109.  
  110.   CONST WS_VISIBLE       = &H10000000
  111.   CONST WS_BORDER        = &H00800000
  112.   CONST WSCLIPCHILDREN   = &H02000000
  113.   CONST GWL_STYLE        = -16
  114.   CONST SW_SHOWMAXIMIZED = 3
  115.  
  116.   DECLARE FUNCTION ShowWindow    LIB "user.exe" (hWnd%, iShow%) AS INTEGER
  117.   DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  118.  
  119.   i% = SetWindowLong(HwndFrame(),GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  120.   i% = ShowWindow(HwndFrame(),SW_SHOWMAXIMIZED)  
  121.  
  122. ''---------------------------------------------------------------------------------------
  123. '' Init
  124. ''---------------------------------------------------------------------------------------
  125.  
  126.   SetBitmap sCUIDLL,cLOGO
  127.   SetTitle  sTITLE+" All-Movie Guide 2 Setup"
  128.  
  129. ''---------------------------------------------------------------------------------------
  130. '' Check the Windows version & processor
  131. ''---------------------------------------------------------------------------------------
  132.                            
  133. ''  IF WinVer()<310 THEN
  134. ''    i% = DoMsgBox(sWINVER,sMESSAGE,cMBSTOP)
  135. ''    ERROR STFQUIT
  136. ''  END IF         
  137.                     
  138. ''  IF GetWinFlags() AND 2 THEN
  139. ''    i% = DoMsgBox(s386,sMESSAGE,cMBSTOP)
  140. ''    ERROR STFQUIT
  141. ''  END IF
  142.  
  143. ''=========================================================================
  144. '' Go !
  145. ''=========================================================================
  146.  
  147. ''---------------------------------------------------------------------------------------
  148. '' read the .INF file, srcdir
  149. ''
  150. READINF:
  151.  
  152.   szInf$ = GetSymbolValue("STF_SRCINFPATH") 
  153.   IF szInf$ = "" THEN
  154.     szInf$ = GetSymbolValue("STF_CWDDIR") + sINFFILE
  155.   END IF   
  156.  
  157.   ReadInfFile szInf$
  158.  
  159.   SrcDir$ = GetSymbolValue("STF_SRCDIR")
  160.  
  161. ''---------------------------------------------------------------------------------------
  162. '' Extra costs
  163. ''
  164.  
  165.   FOR i%=1 TO 26 STEP 1
  166.     AddListItem sCOSTS,"0"
  167.   NEXT i%
  168.  
  169.   FOR i%=1 TO 26 STEP 1
  170.     AddListItem sEXTRACOSTS,"0"
  171.   NEXT i%
  172.  
  173. ''---------------------------------------------------------------------------------------
  174. '' Search the QTW
  175. ''
  176. ''  cursor% = ShowWaitCursor()
  177. ''  OldPath$ = FindFileUsingFileOpen("qtim.dll")
  178. ''  RestoreCursor cursor%
  179.  
  180. ''  IF OldPath$ <> "" THEN
  181. ''    IF 0>WCompareVersion(GetVersionOfFile(OldPath$),sQTWVERSION) THEN
  182. ''      InstallQTW% = 1                           ''Install (older version found)
  183. ''    ELSE
  184. ''      InstallQTW% = 0                           ''Don't install
  185. ''    END IF
  186. ''  ELSE
  187. ''    InstallQTW% = 2                             ''Install unconditionally
  188. ''  END IF
  189.  
  190. ''---------------------------------------------------------------------------------------
  191. '' Welcome dialog
  192. ''
  193.  
  194. WELCOME:      
  195.  
  196.   sz$ = UIStartDlg(sCUIDLL,dWELCOME,"DPModal",0,"")
  197.   IF sz$ = "CONTINUE" THEN
  198.     UIPop 1
  199.   ELSE
  200.     GOSUB ASKQUIT
  201.     GOTO WELCOME
  202.   END IF
  203.  
  204. ''---------------------------------------------------------------------------------------
  205. '' Choose express/custom/QTW setup
  206. ''
  207.  
  208. CUST_EXPRESS0:
  209.  
  210.   METHOD$   = "STND"                    ''copy .exe by default
  211.  
  212.   DESTDIR$  = GetIniKeyString("WIN.INI",sREGKEY,"Installed")  ''default dir
  213.   IF ""=DESTDIR$ THEN
  214.     DESTDIR$  = sDESTDIR
  215.   END IF
  216.  
  217. ''  IF IsWin16 THEN
  218. ''    PLATFORM$ = "Win32"
  219. ''  ELSE
  220.     PLATFORM$ = "Win16"
  221. ''  END IF
  222.  
  223.   MGGROUP$  = sMGGROUP
  224.  
  225. CUST_EXPRESS:                                                  
  226.  
  227.   SetSymbolValue "TEXT1", DESTDIR$
  228.   SetSymbolValue "TEXT2", PlatformString()
  229.   SetSymbolValue "TEXT3", MethodString()
  230.  
  231. CUST_EXPRESS1:
  232.  
  233.   'SetSymbolValue "CHECK1",STR$(InstallQTW%)
  234.   sz$ = UIStartDlg(sCUIDLL, dEXPRESS, "DPText123", 0, "")
  235.   'InstallQTW%  = VAL(GetSymbolValue("CHECK1"))
  236.  
  237.   IF sz$ = "YES" THEN                   ''Express button
  238.     UIPop 1
  239.     EXPRESS% = 1
  240.     GOTO METHOD0
  241.   ELSEIF sz$ = "NO" THEN                ''Custom button
  242.     UIPop 1          
  243.     EXPRESS% = 0
  244.     GOTO METHOD0                        ''WAS METHOD1
  245.   ELSEIF sz$ = "BACK" THEN
  246.     UIPop 1          
  247.     GOTO WELCOME
  248.   ELSE
  249.     GOSUB ASKQUIT
  250.     GOTO CUST_EXPRESS1
  251.   END IF
  252.                                               
  253.        
  254. ''---------------------------------------------------------------------------------------
  255. '' Get Target platform
  256. ''
  257.  
  258. PLATFORM0:
  259.  
  260.   IF EXPRESS% THEN
  261.     GOTO METHOD0
  262.   END IF
  263.  
  264.   ''IF 0=IsWin32() THEN                   ''Detect the platform
  265.   ''  GOTO METHOD0                        ''no possibility to install 32b
  266.   ''END IF
  267.  
  268. PLATFORM:
  269.                        
  270.   IF "Win16"=PLATFORM$ THEN             
  271.     ''SetSymbolValue "RADIO", "2"
  272.   ''ELSE
  273.     SetSymbolValue "RADIO", "1"
  274.   END IF
  275.   
  276. PLATFORM1:        
  277.  
  278.   'sz$ = UIStartDlg(sCUIDLL, dPLATFORM, "DPRadio", 0, "")
  279.  
  280.   IF "1"=GetSymbolValue("RADIO") THEN
  281.     ''PLATFORM$ = "Win32"
  282.   ''ELSE
  283.     PLATFORM$ = "Win16"
  284.   END IF
  285.  
  286.   IF sz$ = "CONTINUE" THEN
  287.     'UIPop 1
  288.   ELSEIF sz$ = "BACK" THEN
  289.     UIPop 1          
  290.     GOTO CUST_EXPRESS
  291.   ELSE
  292.     GOSUB ASKQUIT
  293.     GOTO PLATFORM1                ''PLATFORM1 (this is what I changed) 
  294.   END IF 
  295.   
  296. ''---------------------------------------------------------------------------------------
  297. '' Get installation method
  298. ''
  299.         
  300. METHOD0:
  301.                           
  302.   IF EXPRESS% THEN
  303.     GOTO DESTDIR0
  304.   END IF
  305.   
  306. METHOD:
  307.                        
  308.   IF METHOD$="MIN" THEN
  309.     SetSymbolValue "RADIO", "1"
  310.   ELSEIF METHOD$="MAX" THEN
  311.     SetSymbolValue "RADIO", "3"
  312.   ELSE
  313.     SetSymbolValue "RADIO", "2"         ''default
  314.   END IF
  315.   
  316. METHOD1:        
  317.  
  318.   sz$ = UIStartDlg(sCUIDLL, dMETHOD, "DPRadio", 0, "")
  319.  
  320.   IF "1"=GetSymbolValue("RADIO") THEN
  321.     METHOD$ = "MIN"
  322.   ELSEIF "3"=GetSymbolValue("RADIO") THEN
  323.     METHOD$ = "MAX"
  324.   ELSE
  325.     METHOD$ = "STND"                    ''default
  326.   END IF
  327.  
  328.   IF sz$ = "CONTINUE" THEN
  329.     UIPop 1
  330.   ELSEIF sz$ = "BACK" THEN
  331.     UIPop 1          
  332.   ''IF 0=IsWin32() THEN
  333.     ''GOTO CUST_EXPRESS
  334.   ''ELSE
  335.      GOTO PLATFORM
  336.   ''END IF
  337.   ELSE
  338.     GOSUB ASKQUIT
  339.     GOTO METHOD1
  340.   END IF 
  341.   
  342. ''---------------------------------------------------------------------------------------
  343. '' Get destination directory
  344. ''        
  345.  
  346. DESTDIR0:
  347.  
  348.   UpdateCopyList
  349.  
  350.   IF EXPRESS% THEN          
  351.     IF CheckDestDir() THEN              ''valid dir & enough space
  352.       IF CheckSpace() THEN
  353.         GOTO INSTALL0
  354.       END IF
  355.     END IF
  356.   END IF
  357.  
  358. DESTDIR:                                              
  359.  
  360.   SetSymbolValue "EDIT1", DESTDIR$
  361.   SetSymbolValue "TEXT2", STR$(SPACEREQ&/1024 + 1)+" KB"
  362.  
  363. DESTDIR1:        
  364.  
  365.   sz$ = UIStartDlg(sCUIDLL, dDESTDIR, "DPDestDir", 0, "")
  366.   DESTDIR$ = GetSymbolValue("EDIT1")
  367.  
  368.   IF sz$ = "CONTINUE" THEN
  369.     IF 0=CheckDestDir() THEN
  370.       GOTO DESTDIR1
  371.     END IF
  372.     UpdateCopyList
  373.     UIPop 1
  374.     IF 0=CheckSpace() THEN
  375.       GOTO DESTDIR                      ''SPACEREQ& was reevaluated, goto DESTDIR
  376.     END IF
  377.   ELSEIF sz$ = "BACK" THEN
  378.     UIPop 1          
  379.     if EXPRESS% THEN
  380.       GOTO CUST_EXPRESS0
  381.     ELSE
  382.       GOTO METHOD0
  383.     END IF
  384.   ELSE
  385.     GOSUB ASKQUIT
  386.     GOTO DESTDIR1
  387.   END IF 
  388.   
  389. ''---------------------------------------------------------------------------------------
  390. '' Progman group
  391. ''               
  392. GROUP:
  393.  
  394.   SetSymbolValue "EDIT1", MGGROUP$
  395.  
  396. GROUP1:
  397.  
  398.   sz$ = UIStartDlg(sCUIDLL, dGROUP, "DPGroup", 0, "")
  399.   MGGROUP$ = GetSymbolValue("EDIT1")
  400.  
  401.   IF sz$ <> "CONTINUE" THEN
  402.     GOSUB ASKQUIT
  403.     GOTO GROUP1
  404.   END IF 
  405.  
  406.   UIPop 1
  407.  
  408. ''---------------------------------------------------------------------------------------
  409. '' Proceed with install
  410. ''               
  411. INSTALL0:
  412.  
  413.   Install
  414.  
  415. ''---------------------------------------------------------------------------------------
  416. '' Readme
  417. ''                                     
  418. README:
  419.  
  420.   szReadme$ = MakePath(DESTDIR$,"README.TXT")
  421.  
  422.   IF DoesFileExist(szReadme$,femRead) THEN
  423.  
  424.     CreateProgmanItem MGGROUP$,"All-Movie 2 Readme",szReadme$,"",cmoAll
  425.  
  426.     sz$ = UIStartDlg(sCUIDLL,dASKREADME,"DPModal",0,"")
  427.     UIPop 1
  428.   
  429.     IF sz$ = "YES" THEN
  430.       SetSymbolValue "README",szReadme$
  431.       sz$ = UIStartDlg(sCUIDLL,dREADME,"DPReadme",0,"")
  432.       UIPop 1
  433.     END IF
  434.  
  435.   END IF
  436.   
  437.  
  438.  
  439. ''---------------------------------------------------------------------------------------
  440. '' Register
  441. ''                                     
  442. REGISTER:
  443.  
  444.   sz$ = UIStartDlg(sCUIDLL,dREGISTER,"DPModal",0,"")
  445.   UIPop 1
  446.  
  447. ''---------------------------------------------------------------------------------------
  448. '' Quit
  449. ''                                     
  450. QUIT:
  451.  
  452.   ON ERROR GOTO ERRQUIT
  453.  
  454.   IF ERR = 0 THEN
  455.     IF RestartListEmpty() THEN
  456.       dlg% = dEXITSUCCESS
  457.     else
  458.       dlg% = dEXITRESTART
  459.     END IF
  460.   ELSEIF ERR = STFQUIT THEN
  461.     dlg% = dEXITQUIT
  462.   ELSE
  463.     dlg% = dEXITFAILURE
  464.   END IF
  465.  
  466. QUITL1:
  467.   sz$ = UIStartDlg(sCUIDLL, dlg%, "DPModal", 0, "")
  468.   UIPop 1
  469.  
  470.   IF dlg%=dEXITRESTART AND sz$="OK" THEN
  471.     IF 0=ExitExecRestart() THEN
  472.       i%=DoMsgBox(sCANTRESTART,sMESSAGE,cMBSTOP)
  473.     END IF
  474.   END IF
  475.  
  476.   END
  477.   
  478. ERRQUIT:
  479.   i% = DoMsgBox(sCORRUPTED,sMESSAGE,cMBSTOP)
  480.  
  481.   END
  482.     
  483. ''*************************************************************************
  484. ''*Install: perform the installation operations
  485. ''*************************************************************************
  486.  
  487. SUB Install STATIC
  488.  
  489.   CreateDir DESTDIR$, cmoVital
  490.  
  491.   szStupid$ = MakePath(DESTDIR$, "VIDEO.DAT")
  492.   IF DoesFileExist(szStupid$, femExists) THEN 
  493.     RemoveFile szStupid$, cmoForce
  494.   END IF
  495.  
  496.   szStupid$ = MakePath(DESTDIR$, "PLOTS.DAT")
  497.   IF DoesFileExist(szStupid$, femExists) THEN 
  498.     RemoveFile szStupid$, cmoForce
  499.   END IF
  500.  
  501.   szStupid$ = MakePath(DESTDIR$, "AWARDS.DAT")
  502.   IF DoesFileExist(szStupid$, femExists) THEN 
  503.     RemoveFile szStupid$, cmoForce
  504.   END IF
  505.  
  506.   szStupid$ = MakePath(DESTDIR$, "NAMECS.DAT")
  507.   IF DoesFileExist(szStupid$, femExists) THEN 
  508.     RemoveFile szStupid$, cmoForce
  509.   END IF
  510.  
  511.   szStupid$ = MakePath(DESTDIR$, "TITLECS.DAT")
  512.   IF DoesFileExist(szStupid$, femExists) THEN 
  513.     RemoveFile szStupid$, cmoForce
  514.   END IF
  515.  
  516.   szStupid$ = MakePath(DESTDIR$, "MEDIA.DAT")
  517.   IF DoesFileExist(szStupid$, femExists) THEN 
  518.     RemoveFile szStupid$, cmoForce
  519.   END IF
  520.  
  521.   szStupid$ = MakePath(DESTDIR$, "MOVIE.EXE")
  522.   IF DoesFileExist(szStupid$, femExists) THEN 
  523.     RemoveFile szStupid$, cmoForce
  524.   END IF
  525.  
  526.     OpenLogFile MakePath(DESTDIR$, sLOGFILE), 0
  527.     WriteToLogFile ""
  528.     WriteToLogFile "* " + sTITLE + " Setup Log:"
  529.     WriteToLogFile ""
  530.   
  531.     WriteToLogFile ""
  532.     WriteToLogFile "* Destination directory: '" + DESTDIR$ + "' (may have been created)"
  533.     WriteToLogFile ""
  534.  
  535.   WinDir$    = GetWindowsDir()
  536.   WinSysDir$ = GetWindowsSysDir()
  537.  
  538.     WriteToLogFile "*     Windows directory: '" + WinDir$ + "'"
  539.     WriteToLogFile "* Wnds.system directory: '" + WinSysDir$ + "'"
  540.     WriteToLogFile ""
  541.     WriteToLogFile "*  Destination platform: " + PlatformString()
  542.     WriteToLogFile "*         Chosen method: " + MethodString()
  543.  
  544.     IF EXPRESS% THEN
  545.       WriteToLogFile "* Express installation"
  546.     ELSE
  547.       WriteToLogFile "* Custom installation"
  548.     END IF
  549.   
  550.   
  551.  
  552.   SetRestartDir DESTDIR$
  553.   CopyFilesInCopyList
  554.  
  555.   IniFile$ = MakePath(WinDir$, sINIFILE)
  556.  
  557.     WriteToLogFile ""
  558.     WriteToLogFile "*             .INI file: '" + IniFile$ + "'"
  559.     WriteToLogFile ""
  560.  
  561.   CreateIniKeyValue IniFile$, "Settings", "InstallPath",  DESTDIR$+"\" , cmoAll
  562.   CreateIniKeyValue IniFile$, "Settings", "DatabasePath", SrcDir$, cmoAll
  563.  
  564.   CreateIniKeyValue "WIN.INI", sREGKEY, "Installed", DESTDIR$ , cmoAll
  565.  
  566.     WriteToLogFile ""
  567.     WriteToLogFile "* Program manager group: '" + MGGROUP$ + "'"
  568.     WriteToLogFile ""
  569.  
  570.   CreateProgmanGroup MGGROUP$, "", cmoNone             
  571.   IF METHOD$="MIN" THEN
  572.     MovieDir$ = SrcDir$+"PROGRAM"
  573.   ELSE
  574.     MovieDir$ = DESTDIR$
  575.   END IF
  576.  
  577.   IF PLATFORM$ = "Win16" THEN
  578.     MovieExe$ = "MOVIE.EXE"
  579.   ''ELSE
  580.   ''  MovieExe$ = "MOVIE32.EXE"
  581.   END IF
  582.  
  583.   IF PLATFORM$ = "Win16" THEN
  584.     CreateProgmanItem MGGROUP$,sTITLE,MakePath(MovieDir$,MovieExe$),"",cmoAll
  585.   ELSE
  586.     CreateProgmanItem MGGROUP$,sTITLE,MakePath(MovieDir$,MovieExe$),"",cmoAll  ''the same name
  587.   END IF
  588.         
  589.     WriteToLogFile ""
  590.     WriteToLogFile "* "+sTITLE+" Setup finished."
  591.     WriteToLogFile ""
  592.     CloseLogFile
  593.  
  594.   ''*** QTW ***
  595.  
  596.   ''IF InstallQTW% THEN
  597.  
  598.     ''X CreateIniKeyValue "WIN.INI", "Extensions", "mov", MakePath(DEST2$,"player.exe") + " ^.mov", cmoOverwrite
  599.     ''X CreateIniKeyValue "WIN.INI", "Extensions", "pic", MakePath(DEST2$,"viewer.exe") + " ^.pic", cmoOverwrite
  600.  
  601.     ''CreateIniKeyValue "WIN.INI", "MCI Extensions", "mov", "QTWVideo", cmoOverwrite
  602.     ''CreateIniKeyValue "WIN.INI", "MCI Extensions", "pic", "QTWVideo", cmoOverwrite
  603.     ''CreateIniKeyValue "WIN.INI", "MCI Extensions", "jpg", "QTWVideo", cmoOverwrite
  604.     ''i% = WritePrivateProfileString("MCI", "QTWVideo", MakePath(WinSysDir$, "mciqtw.drv"), "SYSTEM.INI")
  605.  
  606.   rem Compatibility hacks.
  607.   
  608.     ''i% = WritePrivateProfileString("Macx", "DeviceBitmap", "OFF", "SYSTEM.INI")
  609.     ''CreateIniKeyValue "WIN.INI", "Mach", "devicebitmap", "off", cmoOverwrite
  610.  
  611.   rem Update Registration Database
  612.   rem ----------------------------
  613.     ''X RUN MakePath(DEST2$, "player.exe") + " install"
  614.     ''X RUN MakePath(DEST2$, "viewer.exe") + " install"
  615.  
  616.   rem Create QTW.INI
  617.   rem ----------------
  618.     ''X ini$ = MakePath(DEST2$, "QTW.INI")
  619.     ''X CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite
  620.     ''X RemoveIniKey ini$, "video", "optimize", cmoNone
  621.  
  622.   ''END IF
  623.  
  624. END SUB
  625.  
  626. ''---------------------------------------------------------------------------------------
  627.  
  628.   FUNCTION CheckDestDir STATIC AS INTEGER
  629.  
  630.     IF 0=IsDirWritable(DESTDIR$) THEN
  631.       sz$ = UIStartDlg(sCUIDLL,dBADDESTDIR,"DPModal",0,"")
  632.       UIPop 1
  633.       CheckDestDir=0
  634.     ELSE
  635.       CheckDestDir=1
  636.     END IF
  637.     
  638.   END FUNCTION
  639.                                     
  640.   FUNCTION CheckSpace STATIC AS INTEGER
  641.  
  642.     IF GetFreeSpaceForDrive(MID$(DESTDIR$,1,1))<SPACEREQ& THEN
  643.       sz$ = UIStartDlg(sCUIDLL,dTOOBIG,"DPModal",0,"")
  644.       UIPop 1
  645.       CheckSpace=0
  646.     ELSE
  647.       CheckSpace=1
  648.     END IF
  649.     
  650.   END FUNCTION
  651.                                     
  652. ''---------------------------------------------------------------------------------------
  653.  
  654.   FUNCTION PlatformString() STATIC AS STRING
  655.   
  656.     IF "Win16"=PLATFORM$ THEN
  657.       PlatformString = "Windows 3.1x"
  658.     ''ELSEIF "Win32"=PLATFORM$ THEN
  659.     ''  PlatformString = "Windows 95 or Windows NT"
  660.       ELSE
  661.      ERROR STFERR
  662.     END IF
  663.     
  664.   END FUNCTION
  665.  
  666. ''---------------------------------------------------------------------------------------
  667.  
  668.   FUNCTION MethodString() STATIC AS STRING
  669.   
  670.     IF "MIN"=METHOD$ THEN
  671.       MethodString = "Minimum: run everything from CD"
  672.     ELSEIF "STND"=METHOD$ THEN
  673.       MethodString = "Standard: copy program files"
  674.     ELSEIF "MAX"=METHOD$ THEN
  675.       MethodString = "Maximum: copy program+data files"
  676.     ELSE
  677.       ERROR STFERR
  678.     END IF
  679.     
  680.   END FUNCTION
  681.  
  682. ''---------------------------------------------------------------------------------------
  683.  
  684. ASKQUIT:
  685.  
  686.   sz$ = UIStartDlg(sCUIDLL, dASKQUIT, "DPModal", 0, "")
  687.   IF sz$ = "EXIT" THEN
  688.     UIPopAll
  689.     ERROR STFQUIT
  690.   ELSE
  691.     UIPop 1
  692.   END IF
  693.  
  694.   RETURN
  695.  
  696. ''---------------------------------------------------------------------------------------
  697.  
  698.   FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  699.     IF szDir$ = "" THEN
  700.       MakePath = szFile$
  701.     ELSEIF szFile$ = "" THEN
  702.       MakePath = szDir$
  703.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  704.       MakePath = szDir$ + szFile$
  705.     ELSE
  706.       MakePath = szDir$ + "\" + szFile$
  707.     END IF
  708.   END FUNCTION
  709.  
  710. ''---------------------------------------------------------------------------------------
  711.  
  712.   FUNCTION DriveInt(Drive$) STATIC AS INTEGER
  713.  
  714.     DriveInt = ASC(UCASE$(MID$(Drive$,1,1)))+1-ASC("A")
  715.  
  716.   END FUNCTION
  717.  
  718. ''---------------------------------------------------------------------------------------
  719. '' WinVer:
  720. '' Returns:
  721. ''   Windows version (major*100+minor)
  722. ''
  723.   FUNCTION WinVer STATIC AS INTEGER
  724.     WinVer = GetWindowsMajorVersion()*100+GetWindowsMinorVersion()
  725.   END FUNCTION
  726.  
  727. ''---------------------------------------------------------------------------------------
  728. '' Conditionally installs the file, based on version checking
  729. ''
  730.   SUB UpdateCopyList STATIC
  731.  
  732.     sz$ = UIStartDlg(sCUIDLL,dSEARCHING,"DPMute",0,"")
  733.  
  734.     ClearCopyList
  735.  
  736.     AddSectionFilesToCopyList "REQUIRED", SrcDir$, DESTDIR$
  737.  
  738.     IF METHOD$="MAX" THEN
  739.       AddSectionFilesToCopyList "DAT", SrcDir$, DESTDIR$
  740.     END IF
  741.  
  742.     IF METHOD$<>"MIN" THEN
  743.       KeyInstall PLATFORM$,"MOVIE"
  744.       KeyInstall PLATFORM$,"CDB51"
  745.       KeyInstall PLATFORM$,"VDBLIST"
  746.     END IF
  747.  
  748.     ''version compare
  749.  
  750.     ''IF PLATFORM$="Win32" THEN
  751.       ''IF 1=IsWin32() THEN                '' Windows NT
  752.         ''AddSectionKeyFileToCopyList "CTL3D32","WinNT",SrcDir$,MakePath(GetWindowsDir(),"SYSTEM32")
  753.       ''ELSE
  754.         ''AddSectionKeyFileToCopyList "CTL3D32","Win95",SrcDir$,GetWindowsSysDir()
  755.       ''END IF
  756.       ''VerKeyInstall PLATFORM$,"MSVCRT20"            
  757.       ''VerKeyInstall PLATFORM$,"MFC30"
  758.     ''END IF
  759.  
  760.     IF METHOD$<>"MIN" THEN
  761.       IF PLATFORM$="Win16" THEN
  762.         ''KeyInstall PLATFORM$,"PLAYER"
  763.         ''KeyInstall PLATFORM$,"IMPJPEG"            
  764.         ''KeyInstall PLATFORM$,"IXLEAD"
  765.       ''ELSE                                                                ''files for "Win16"
  766.         KeyInstall PLATFORM$,"IMPJPEG"            
  767.         KeyInstall PLATFORM$,"IXLEAD"
  768.       END IF
  769.     END IF
  770.  
  771.     FOR i%=1 TO 26 STEP 1
  772.       ReplaceListItem sEXTRACOSTS,i,"0"
  773.     NEXT i%
  774.     ReplaceListItem sEXTRACOSTS,DriveInt(DESTDIR$),"16834"
  775.  
  776.     ''IF InstallQTW% THEN
  777.  
  778.       ''AddSectionFilesToCopyList "QTW", SRCDIR$, GetWindowsSysDir()
  779.       ''ReplaceListItem sEXTRACOSTS,DriveInt(GetWindowsSysDir()),"16834"
  780.  
  781.     ''END IF
  782.  
  783.     SPACEREQ& = GetCopyListCost(sEXTRACOSTS,sCOSTS,"")      
  784.                                                     ''doesn't return the cost
  785.  
  786.     SPACEREQ& = 0                                   ''this works
  787.     FOR i%=1 TO 26 STEP 1                           
  788.       SPACEREQ& = SPACEREQ& + VAL(GetListItem(sCOSTS,i%))
  789.     NEXT i%
  790.     IF SPACEREQ&<0 THEN
  791.       SPACEREQ& = 0
  792.     END IF
  793.  
  794.     UIPop 1  
  795.  
  796.   END SUB
  797.  
  798. ''---------------------------------------------------------------------------------------
  799. '' Searches for an installed version of the file, compares version
  800. '' returns destination dir (to be installed to), or an empty string
  801. ''
  802.   FUNCTION VerSearch(szFile$,szVersion$) STATIC AS STRING
  803.   
  804.     Flags% = VerFind(szFile$)
  805.     IF -1=Flags% THEN
  806.       ERROR STFERR
  807.     END IF
  808.  
  809.     FoundDir$ = GetSymbolValue("CURDIR")
  810.     ProposedDir$ = GetSymbolValue("DSTDIR")
  811.   
  812.     IF FoundDir$<>"" THEN                         ''already installed
  813.       IF 0>=WCompareVersion(szVersion$,GetVersionOfFile(MakePath(FoundDir$,szFile$))) THEN
  814.         VerSearch = ""                            ''newer or the same version
  815.       ELSE
  816.         VerSearch = FoundDir$
  817.       END IF
  818.     ELSE
  819.       VerSearch = ProposedDir$
  820.     END IF
  821.  
  822.   END FUNCTION
  823.  
  824. ''---------------------------------------------------------------------------------------
  825. '' Conditionally installs the file, based on version checking
  826. ''
  827.   'SUB VerKeyInstall(szSection$,szKey$) STATIC
  828.  
  829.     'DstDirectory$ = VerSearch(GetSectionKeyFilename(szSection$,szKey$),GetSectionKeyVersion(szSection$,szKey$))
  830.     'IF DstDirectory$<>"" THEN
  831.       'AddSectionKeyFileToCopyList szSection$,szKey$,SrcDir$,DstDirectory$
  832.     'END IF
  833.  
  834.   'END SUB
  835.  
  836. ''---------------------------------------------------------------------------------------
  837. '' Install the file into the DESTDIR$
  838. ''
  839.   SUB KeyInstall(szSection$,szKey$) STATIC 
  840.  
  841.     AddSectionKeyFileToCopyList szSection$,szKey$,SrcDir$,DESTDIR$
  842.  
  843.   END SUB
  844.  
  845. ''---------------------------------------------------------------------------------------
  846. '' Corel All-Movie Guide 2 Setup Script - end
  847. ''---------------------------------------------------------------------------------------
  848.